package lanqiao._02算法训练.page02;

import java.util.Scanner;

/**
 * @author 挚爱之夕
 * @version 1.0
 * @implSpec
 * 问题描述
 * 　　炫炫开了一家商店，卖的货只有一个，XXX，XXX卖N元钱。有趣的是，世界上只有面值为3的幂的纸币，
 * 即纸币只有1元的、3元的、9元的。。。。，有一天，桥神来买XXX，可他没办法正好给出N元钱，
 * 而炫炫没法找零，于是他只好用他的钱凑出了一个比N大，并且最小的价值，交给了炫炫。
 * 炫炫想知道，他这次最多可以得到多少张纸币。
 * 输入格式
 * 　　一个数，N
 * 输出格式
 * 　　一个数，为答案
 * 样例输入
 * 4
 * 样例输出
 * 2
 * 数据规模和约定
 * 　　n<=10^17
 * 思路：
 * 1. 答案必不使用1元，可证明：若需要使用若干1元，得到x，满足x > N。那么去掉1元，得到x1，
 * 可能满足x1 >= N，当x1 > N，可知x不是最小，当x1 = N，不符合题意。
 * 2. 3的幂都能由若干3表示，那么要取得最多，就要全部使用3组合(这应该就是贪心的地方)
 * 3. 分情况，若N不能被3整除，结果就是 N / 3 + 1，
 * 若N能被3整除，则答案是n / 3 + 1(将N的所有3因子除掉后得到n，即n满足 3^k * n = N)
 * @since 2022 - 11 - 26 - 18:10
 */
public class _19幸运的店家 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long n = sc.nextLong();
        if(n % 3 != 0){
            System.out.println(n / 3 + 1);
        }else{
            while(n % 3 == 0)  n /=  3;
            n = n / 3 + 1;
            System.out.println(n);
        }
        sc.close();
    }
}
